--- title: "拼数字" created: 2025-11-28 tags: - 算法 --- # 拼数字 ## 题目 [拼数字](https://www.lanqiao.cn/problems/17111/learning/) ![[image-ba4c9799.png]] ## 思路分析 ## 代码实现 ```cpp #include using namespace std; #define endl '\n' // n个数字2 和 m个数字3 拼出最大的2023的倍数 // n=2 m=8 // 2233333333 做全排列 然后转成int 看是不是 2023的倍数 有更大的就更新 // 数据范围过大 尽可能做吧 能拿一点是一点 // 用高精度除法 typedef long long LL; int n,m; string s; vector A; bool div(vector &A,int b){ vector C; int r=0; for(int i=A.size()-1;i>=0;i--){ r=r*10+A[i]; C.push_back(r/b); r%=b; } reverse(C.begin(),C.end()); while(C.size()>1 && C.back()==0) C.pop_back(); return r==0; } int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n>>m; for(int i=0;i=0;i--){ A.push_back(s[i]-'0'); } if(div(A,2023)) res=s; }while(next_permutation(s.begin(),s.end())); cout<